<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>WebSocket</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/WebSocket"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-WebSocket rootpage-WebSocket skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">WebSocket</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="wikitable float-right">
<caption style="background:#C0C0FF; font-size:larger;">WebSocket-Protokoll
</caption>
<tbody><tr>
<td><b>Familie:</b>
</td>
<td><a href="Internetprotokollfamilie" title="Internetprotokollfamilie">Internetprotokollfamilie</a>
</td></tr>
<tr>
<td><b>Einsatzgebiet:</b>
</td>
<td>bidirektionale Verbindung zwischen<br> einer Webanwendung und einem WebSocket-Server
</td></tr>
<tr>
<td><b>Port:</b></td>
<td>80/TCP, 443/TCP
</td></tr>
<tr>
<td colspan="2" class="center">
<table class="wikitable float-right" style="text-align:center; font-size:96%;">
<caption style="font-weight:normal;">WebSocket im <a href="Internetprotokollfamilie#TCP/IP-Referenzmodell" title="Internetprotokollfamilie">TCP/IP-Protokollstapel</a>:
</caption>
<tbody><tr>
<td style="background:#FFCC99; color:#202122;"><b>Anwendung</b>
</td>
<td colspan="5" class="hintergrundfarbe6" style="font-weight:bold;">WebSocket
</td></tr>
<tr>
<td class="hintergrundfarbe8">Transport
</td>
<td colspan="5"><a href="Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a>
</td></tr>
<tr>
<td class="hintergrundfarbe8">Internet
</td>
<td colspan="5"><a href="Internet_Protocol" title="Internet Protocol">IP</a> (<a href="IPv4" title="IPv4">IPv4</a>, <a href="IPv6" title="IPv6">IPv6</a>)
</td></tr>
<tr>
<td class="hintergrundfarbe8">Netzzugang
</td>
<td><a href="Ethernet" title="Ethernet">Ethernet</a>
</td>
<td><a href="Token_Bus" title="Token Bus">Token<br>Bus</a>
</td>
<td><a href="Token_Ring" title="Token Ring">Token<br>Ring</a>
</td>
<td><a href="Fiber_Distributed_Data_Interface" title="Fiber Distributed Data Interface">FDDI</a>
</td>
<td>…
</td></tr></tbody></table>
</td></tr>
<tr>
<td><b>Standards:</b>
</td>
<td>RFC 6455<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</td></tr></tbody></table>
<p>Das <b>WebSocket-Protokoll</b> ist ein auf <a href="Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a> basierendes <a href="Netzwerkprotokoll" title="Netzwerkprotokoll">Netzwerkprotokoll</a>, das entworfen wurde, um eine <a href="Bidirektional" title="Bidirektional">bidirektionale</a> Verbindung zwischen einem <a href="Webbrowser" title="Webbrowser">Webbrowser</a> und einem WebSocket-Server bzw. einem <a href="Webserver" title="Webserver">Webserver</a>, der auch WebSockets unterstützt, herzustellen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Vorteile_gegenüber_reinem_HTTP"><span id="Vorteile_gegen.C3.BCber_reinem_HTTP"></span>Vorteile gegenüber reinem HTTP</h2></div>
<p>Während bei einer reinen <a href="Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>-Verbindung jede Aktion des Servers eine vorhergehende Anfrage des Clients erfordert, reicht es beim WebSocket-Protokoll, wenn der Client die Verbindung öffnet. Der Server kann dann diese offene Verbindung aktiv verwenden und neue Informationen an den Client ausliefern, ohne auf eine neue Verbindung des Clients zu warten. Eine vom Server initiierte Übertragung ist bei einer reinen HTTP-Verbindung nur durch verzögertes Antworten auf eine vom Client initiierte Anfrage möglich (<a href="Long_Polling" title="Long Polling">long Polling</a>). Seit HTTP/2 kann der Server auch Push-Meldungen absetzen.
Zudem entfallen bei WebSockets die durch den HTTP-Header verursachten zusätzlichen Daten, die bei jeder Anfrage einige hundert Bytes umfassen können.
Technisch betrachtet startet bei WebSocket, wie bei HTTP, der Client eine Anfrage, mit dem Unterschied, dass nach der Übertragung der Daten zum Verbindungsaufbau die zugrundeliegende <a href="Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a>-Verbindung bestehen bleibt und asynchrone Übertragungen in beide Richtungen ermöglicht.
</p>
<div class="mw-heading mw-heading2"><h2 id="URI-Schema">URI-Schema</h2></div>
<p>Die WebSocket-Protokoll-Spezifikation definiert zwei neue <a href="Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a>-Schemata, <i>ws:</i> für unverschlüsselte, und <i>wss:</i> für verschlüsselte Verbindungen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Der_WebSocket-Protokoll-Handshake">Der WebSocket-Protokoll-Handshake</h2></div>
<p>Zu Beginn jeder Verbindung führen Server und Client einen sogenannten Handshake durch. Dieser ähnelt dem HTTP-Header und ist vollständig abwärtskompatibel zu diesem, was die Nutzung des Standard-HTTP-Ports „80“ zugleich für normale HTTP-Kommunikation als auch für die Websocket-Nutzung ermöglicht. Der Handshake beinhaltet außerdem weitere Informationen (z. B. die verwendete Protokollversion).
</p>
<div class="mw-heading mw-heading3"><h3 id="Anfrage_des_Clients">Anfrage des Clients</h3></div>
<p>Im Folgenden ist ein Beispielhandshake des siebzehnten Protokollentwurfs (<i>draft-ietf-hybi-thewebsocketprotocol-17</i>) dargestellt und erläutert:<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Achtung: Ältere Protokollentwürfe können sehr stark von dieser Version des Protokolls abweichen, da es aufgrund von Sicherheitsbedenken umgestaltet wurde. Dies betrifft insbesondere die Entwürfe vor <i>draft-ietf-hybi-thewebsocketprotocol-04</i>.
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
</pre></div>
<p>Wie auch im <a href="Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a> gibt der Client an, auf welche Ressource (hier: <i>/chat</i>) und auf welchen Host (hier: <i>server.example.com</i>) er zugreifen möchte. Außerdem fordert der Client ein Upgrade auf das Websocket-Protokoll. Der zufällig generierte „Sec-WebSocket-Key“ dient zur Überprüfung, ob der Server die Anfrage tatsächlich gelesen und verstanden hat (<i>siehe Abschnitt <a href="#Antwort_des_Servers">Antwort des Servers</a></i>). Unter „Sec-WebSocket-Protocol“ hat der Client die Möglichkeit, auf das Websocket-Protokoll aufbauende Protokolle anzugeben, die die Clientanwendung unterstützt (hier: ein Chat-Protokoll). Selbsterklärend sollte unter „Sec-WebSocket-Version“ die verwendete Protokollversion angegeben werden.
</p>
<div class="mw-heading mw-heading3"><h3 id="Antwort_des_Servers">Antwort des Servers</h3></div>
<p>Auf die obige Beispielanfrage könnte ein Websocket-Server beispielsweise wie folgt antworten:
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat
</pre></div>
<p>Durch den <a href="HTTP-Statuscode" title="HTTP-Statuscode">HTTP-Statuscode</a> 101 und die folgenden zwei Zeilen erklärt der Server, dass er mit dem Wechsel des Protokolls einverstanden ist. Von diesem Zeitpunkt an verwenden beide ein binäres Protokoll, das nicht mehr HTTP-kompatibel ist. Es ist in Pakete aufgeteilt, die als Binär oder Text, als Ping oder Pong oder als Ende der Verbindung markiert sind und die Länge des Inhalts angeben.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Der zurückgesendete Schlüssel unter „Sec-WebSocket-Accept“ dient der Verifikation, dass der Server die Anfrage des Clients gelesen hat. Er wird wie folgt erstellt: An den oben erwähnten, <a href="Base64" title="Base64">Base64</a>-kodierten String, den der Client sendet („Sec-WebSocket-Key“) wird der <a href="Globally_Unique_Identifier" class="mw-redirect" title="Globally Unique Identifier">Globally Unique Identifier</a> <code>258EAFA5-E914-47DA-95CA-C5AB0DC85B11</code> angehängt. Daraufhin wird ein <a href="Secure_Hash_Algorithm" title="Secure Hash Algorithm">SHA1-Hash</a> des entstandenen Schlüssels erstellt und Base64-kodiert. Anzumerken ist hierbei, dass der ursprünglich empfangene Schlüssel zwar Base64-kodiert ist, jedoch zu keinem Zeitpunkt dekodiert wird.
</p><p>In diesem Beispiel gibt der Server zusätzlich an, dass er das angeforderte Protokoll „chat“ kennt („Sec-WebSocket-Protocol“).
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiel">Beispiel</h2></div>
<p>WebSocket Client in <a href="JavaScript" title="JavaScript">JavaScript</a>
</p>
<div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">var</span><span class="w"> </span><span class="nx">socket</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">WebSocket</span><span class="p">(</span><span class="nx">urlToWebsocketServer</span><span class="p">);</span>
<span class="linenos" data-line="2"></span>
<span class="linenos" data-line="3"></span><span class="c1">// callback-Funktion wird gerufen, wenn die Verbindung erfolgreich aufgebaut werden konnte</span>
<span class="linenos" data-line="4"></span><span class="nx">socket</span><span class="p">.</span><span class="nx">onopen</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="linenos" data-line="5"></span><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"Verbindung wurde erfolgreich aufgebaut"</span><span class="p">);</span>
<span class="linenos" data-line="6"></span><span class="p">};</span>
<span class="linenos" data-line="7"></span>
<span class="linenos" data-line="8"></span><span class="c1">// callback-Funktion wird gerufen, wenn eine neue Websocket-Nachricht eintrifft</span>
<span class="linenos" data-line="9"></span><span class="nx">socket</span><span class="p">.</span><span class="nx">onmessage</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">messageEvent</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="linenos" data-line="10"></span><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">messageEvent</span><span class="p">.</span><span class="nx">data</span><span class="p">);</span>
<span class="linenos" data-line="11"></span><span class="p">};</span>
<span class="linenos" data-line="12"></span>
<span class="linenos" data-line="13"></span><span class="c1">// callback-Funktion wird gerufen, wenn ein Fehler auftritt</span>
<span class="linenos" data-line="14"></span><span class="nx">socket</span><span class="p">.</span><span class="nx">onerror</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">errorEvent</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="linenos" data-line="15"></span><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"Error! Die Verbindung wurde unerwartet geschlossen"</span><span class="p">);</span>
<span class="linenos" data-line="16"></span><span class="p">};</span>
<span class="linenos" data-line="17"></span>
<span class="linenos" data-line="18"></span><span class="nx">socket</span><span class="p">.</span><span class="nx">onclose</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">closeEvent</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="linenos" data-line="19"></span><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'Die Verbindung wurde geschlossen --- Code: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">closeEvent</span><span class="p">.</span><span class="nx">code</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">' --- Grund: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">closeEvent</span><span class="p">.</span><span class="nx">reason</span><span class="p">);</span>
<span class="linenos" data-line="20"></span><span class="p">};</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Erweiterungen">Erweiterungen</h2></div>
<p>Die Spezifikation erlaubt die Erweiterung des Websocket-Protokolls durch definierte „Extensions“. Diese werden zwischen Client und Server ausgehandelt.
Beispiele:
</p>
<ul><li><a rel="nofollow" class="external text" href="https://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-06">WebSocket Per-frame Compression</a></li>
<li><a rel="nofollow" class="external text" href="https://tools.ietf.org/html/draft-tamplin-hybi-google-mux-03">A Multiplexing Extension for WebSockets</a></li>
<li><a rel="nofollow" class="external text" href="https://tools.ietf.org/html/draft-hapner-hybi-messagebroker-subprotocol-01">The MessageBroker WebSocket Subprotocol</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Browser-Unterstützung"><span id="Browser-Unterst.C3.BCtzung"></span>Browser-Unterstützung</h2></div>
<ul><li>Auf <a href="WebKit" title="WebKit">WebKit</a> basierende Browser (z. B. <a href="Google_Chrome" title="Google Chrome">Google Chrome</a>, <a href="Apple_Safari" class="mw-redirect" title="Apple Safari">Apple Safari</a>)</li>
<li><a href="Opera_(Browser)" title="Opera (Browser)">Opera</a>, ab Version 10.70</li>
<li><a href="Microsoft_Edge" title="Microsoft Edge">Microsoft Edge</a>, ab erster Version</li>
<li><a href="Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a>, ab Version 4<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Internet_Explorer" title="Internet Explorer">Internet Explorer</a>, ab Version 10.0</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Peter Leo Gorski, Luigi Lo Iacono, Hoai Viet Nguyen: <i>WebSockets – Moderne HTML5-Echtzeitanwendungen entwickeln</i>, Hanser, München und Wien 2015, ISBN 978-3-446-44371-6</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */
.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}
/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc6455" class="extiw external" title="rfc:6455">6455</a></span></i> – <i><span lang="en">The WebSocket Protocol Version 13</span></i>. 2011 (englisch).</li>
<li><span class="cite"><a rel="nofollow" class="external text" href="https://websockets.spec.whatwg.org/"><i>The WebSocket API.</i></a> – WHATWG Entwurf für die API-Spezifikation.<span class="Abrufdatum" style="display:none"> Abgerufen am 10. Dezember 2009</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AWebSocket&rft.title=The+WebSocket+API&rft.description=The+WebSocket+API&rft.identifier=https%3A%2F%2Fwebsockets.spec.whatwg.org%2F&rft.language=en"> </span></li>
<li><span class="cite">Matthias Wessendorf: <a rel="nofollow" class="external text" href="https://www.heise.de/developer/artikel/WebSocket-Annaeherung-an-Echtzeit-im-Web-1260189.html"><i>WebSocket: Annäherung an Echtzeit im Web.</i></a> In: <i><a href="Heise_online" title="Heise online">Heise online</a>.</i><span class="Abrufdatum" style="display:none"> Abgerufen am 20. Juni 2011</span></span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AWebSocket&rft.title=WebSocket%3A+Ann%C3%A4herung+an+Echtzeit+im+Web&rft.description=WebSocket%3A+Ann%C3%A4herung+an+Echtzeit+im+Web&rft.identifier=https%3A%2F%2Fwww.heise.de%2Fdeveloper%2Fartikel%2FWebSocket-Annaeherung-an-Echtzeit-im-Web-1260189.html&rft.creator=Matthias+Wessendorf"> </span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc6455" class="extiw external" title="rfc:6455">6455</a></span></i> – <i><span lang="en">The WebSocket Protocol Version 13</span></i>. 2011 (englisch).</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Der vorliegende Beispielhandshake entstammt der <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17">siebzehnten Version des <i>WebSocket Protocol Draft der IETF</i></a></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc6455#section-5.2" class="extiw external" title="rfc:6455">6455</a></span></i> – <i><span lang="en">The WebSocket Protocol Version 13</span></i>. 2011, Abschnitt 5.2: <i>Base Framing Protocoll</i>. (englisch).</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/de/docs/Web/API/WebSockets_API"><i>The WebSocket API (WebSockets).</i></a> In: <i>developer.mozilla.org.</i><span class="Abrufdatum"> Abgerufen am 22. März 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AWebSocket&rft.title=The+WebSocket+API+%28WebSockets%29&rft.description=The+WebSocket+API+%28WebSockets%29&rft.identifier=https%3A%2F%2Fdeveloper.mozilla.org%2Fde%2Fdocs%2FWeb%2FAPI%2FWebSockets_API&rft.language=en"> </span></span>
</li>
</ol>
<style data-mw-deduplicate="TemplateStyles:r261921266">
/* start https://de.wikipedia.org/ */
.mw-parser-output table.erw-nav-zebra>tbody>:nth-child(odd){background-color:var(--dewiki-hintergrundfarbe-basis)}.mw-parser-output .erw-nav-farbschema-blau .erw-nav-leiste{background-color:#f5f5f5}.mw-parser-output .erw-nav-farbschema-blau .erw-nav-gruppe{background-color:#e5ecf2}.mw-parser-output .erw-nav-farbschema-grau .erw-nav-leiste,.mw-parser-output .erw-nav-farbschema-grau .erw-nav-gruppe{background-color:#ececec}.mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt>.wikitable>*>tr{border-top:2px solid #fdfdfd!important;border-bottom:2px solid #fdfdfd!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-blau .erw-nav-leiste,html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-blau .erw-nav-gruppe,html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-grau .erw-nav-leiste,html.skin-theme-clientpref-night .mw-parser-output .erw-nav-farbschema-grau .erw-nav-gruppe{background-color:#202122}html.skin-theme-clientpref-night .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable tr,html.skin-theme-clientpref-night .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable td{border-color:#101418!important}html.skin-theme-clientpref-night .mw-parser-output .erw-nav-bild span[typeof="mw:File"] img{background-color:#c8ccd1}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-blau .erw-nav-leiste,html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-blau .erw-nav-gruppe,html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-grau .erw-nav-leiste,html.skin-theme-clientpref-os .mw-parser-output .erw-nav-farbschema-grau .erw-nav-gruppe{background-color:#202122}html.skin-theme-clientpref-os .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable tr,html.skin-theme-clientpref-os .mw-parser-output .erweiterte-navigationsleiste .klappleiste-inhalt .wikitable td{border-color:#101418!important}html.skin-theme-clientpref-os .mw-parser-output .erw-nav-bild span[typeof="mw:File"] img{background-color:#c8ccd1}}.mw-parser-output .erweiterte-navigationsleiste .hlist .wikitable{border-top:0px!important;border-bottom:0px!important;margin-top:0!important;margin-bottom:0!important}.mw-parser-output .erweiterte-navigationsleiste .hlist .wikitable tr:first-of-type td{border-top:0px!important}.mw-parser-output .erweiterte-navigationsleiste .hlist .wikitable tr:last-of-type td{border-bottom:0px!important}
/* end https://de.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r260755238">
/* start https://de.wikipedia.org/ */
.mw-parser-output div.klappleiste{border:1px solid var(--dewiki-rahmenfarbe1);clear:both;font-size:95%;box-sizing:border-box;margin-top:1.5em;padding:2px}.mw-parser-output div.klappleiste:after{clear:both;content:"";display:block}.mw-parser-output div.klappleiste-bild{float:left;padding:2px}.mw-parser-output div.klappleiste-kopf{background:var(--dewiki-hintergrundfarbe5);color:var(--color-base,#202122);text-align:center;font-weight:bold}.mw-parser-output div.klappleiste.mw-collapsed .klappleiste-bild{display:none}.mw-parser-output div.klappleiste+div.klappleiste,.mw-parser-output div.klappleiste+link+div.klappleiste,.mw-parser-output div.klappleiste+link+link+div.klappleiste,.mw-parser-output div.klappleiste+link+style+div.klappleiste,.mw-parser-output div.klappleiste+style+div.klappleiste,.mw-parser-output div.klappleiste+style+style+div.klappleiste,.mw-parser-output div.klappleiste+style+link+div.klappleiste{margin-top:-1px}@media screen{html.skin-theme-clientpref-night .mw-parser-output .klappleiste-bild span[typeof="mw:File"]:not(.skin-invert-image) img{background-color:#c8ccd1}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .klappleiste-bild span[typeof="mw:File"]:not(.skin-invert-image) img{background-color:#c8ccd1}}
/* end https://de.wikipedia.org/ */
</style>
<div class="klappleiste mw-collapsible navileiste erweiterte-navigationsleiste navigation-not-searchable center erw-nav-farbschema-blau" role="navigation">
<div class="klappleiste-kopf">Standards des <a href="World_Wide_Web_Consortium" title="World Wide Web Consortium">World Wide Web Consortiums</a> (W3C)<div class="erweiterte-navigationsleiste-quicklinks" style="float:left; font-weight:normal; font-size:75%; margin-left:1em; margin-right:2em; display:none;"><span title="Vorlage anzeigen">V</span> – <span title="Diskussion anzeigen">D</span></div></div>
<div class="klappleiste-inhalt mw-collapsible-content" style="clear:left">
<table class="wikitable erw-nav-zebra" style="width:100%;margin:0;text-align:left;font-size:95%;margin-top:.1em;margin-bottom:.0em;">
<tbody><tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Empfehlungen</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="ActivityPub" title="ActivityPub">ActivityPub</a> | <a href="Accessible_Rich_Internet_Applications" title="Accessible Rich Internet Applications">ARIA</a> | <a href="Canonical_XML" title="Canonical XML">Canonical XML</a> | <a href="Compound_Document_Formats" title="Compound Document Formats">CDF</a> | <a href="Cascading_Style_Sheets" title="Cascading Style Sheets">CSS</a> | <a href="Document_Object_Model" title="Document Object Model">DOM</a> | <a href="W3C_Geolocation_API" title="W3C Geolocation API">Geolocation API</a> | <a href="Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a> | <a href="HTML5" title="HTML5">HTML5</a> | <a href="InkML" title="InkML">InkML</a> | <a href="Internationalization_Tag_Set" title="Internationalization Tag Set">ITS</a> | <a href="JSON-LD" title="JSON-LD">JSON-LD</a> | <a href="Mathematical_Markup_Language" title="Mathematical Markup Language">MathML</a> | <a href="Web_Ontology_Language" title="Web Ontology Language">OWL</a> | <a href="Platform_for_Privacy_Preferences_Project" title="Platform for Privacy Preferences Project">P3P</a> | PLS | <a href="Portable_Network_Graphics" title="Portable Network Graphics">PNG</a> | <a href="Resource_Description_Framework" title="Resource Description Framework">RDF</a> | <a href="RDF-Schema" title="RDF-Schema">RDF-Schema</a> | <a href="Rule_Interchange_Format" title="Rule Interchange Format">RIF</a> | <a href="SCXML" title="SCXML">SCXML</a> | <a href="Semantic_Interpretation_for_Speech_Recognition" title="Semantic Interpretation for Speech Recognition">SISR</a> | <a href="Simple_Knowledge_Organisation_System" title="Simple Knowledge Organisation System">SKOS</a> | <a href="Synchronized_Multimedia_Integration_Language" title="Synchronized Multimedia Integration Language">SMIL</a> | <a href="SOAP" title="SOAP">SOAP</a> | <a href="Speech_Recognition_Grammar_Specification" title="Speech Recognition Grammar Specification">SRGS</a> | <a href="Speech_Synthesis_Markup_Language" title="Speech Synthesis Markup Language">SSML</a> | <a href="Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a> | <a href="SPARQL" title="SPARQL">SPARQL</a> | <a href="Timed_Text" title="Timed Text">Timed Text</a> | <a href="Turtle_(Syntax)" title="Turtle (Syntax)">Turtle</a> | <a href="VoiceXML" title="VoiceXML">VoiceXML</a> | <a href="Web_Services_Description_Language" title="Web Services Description Language">WSDL</a> | <a href="XForms" title="XForms">XForms</a> | <a href="Extensible_Hypertext_Markup_Language" title="Extensible Hypertext Markup Language">XHTML</a> | <a href="RDFa" title="RDFa">XHTML+RDFa</a> | <a href="XInclude" title="XInclude">XInclude</a> | <a href="XLink_(Syntax)" title="XLink (Syntax)">XLink</a> | <a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a> | <a href="XML_Base" title="XML Base">XML Base</a> | <a href="XML-Encryption" title="XML-Encryption">XML-Encryption</a> | <a href="XML_Events" title="XML Events">XML Events</a> | <a href="XML_Information_Set" title="XML Information Set">XML Information Set</a> | <a href="Namensraum_(XML)" title="Namensraum (XML)">XML Namespace</a> | <a href="XML_Schema" title="XML Schema">XML Schema</a> | <a href="XML_Signature" title="XML Signature">XML Signature</a> | <a href="XPath" title="XPath">XPath</a> | <a href="XPointer" title="XPointer">XPointer</a> | <a href="XProc" title="XProc">XProc</a> | <a href="XQuery" title="XQuery">XQuery</a> | <a href="Extensible_Stylesheet_Language" title="Extensible Stylesheet Language">XSL</a> | <a href="Extensible_Stylesheet_Language_%E2%80%93_Formatting_Objects" title="Extensible Stylesheet Language – Formatting Objects">XSL-FO</a> | <a href="XSL_Transformation" title="XSL Transformation">XSLT</a> <small>(Elemente)</small>
</p>
</td>
<td class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent;" rowspan="5"><div class="noviewer" aria-hidden="true" role="presentation"><span typeof="mw:File"></span></div>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Arbeitsentwürfe<br>und Kandidaten</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="CCXML" title="CCXML">CCXML</a> | <a href="CURIE" title="CURIE">CURIE</a> | <a href="SMIL_Timesheets" title="SMIL Timesheets">SMIL Timesheets</a> | <a href="SXBL" title="SXBL">sXBL</a> | WICD | <a href="XFrames" title="XFrames">XFrames</a> | <a href="XML_Binding_Language" title="XML Binding Language">XBL</a> | XHTML+MathML+SVG | <a href="XMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Anmerkungen</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="XAdES" title="XAdES">XAdES</a> | <a href="Extensible_Forms_Description_Language" title="Extensible Forms Description Language">XFDL</a> | <a href="XHTML%2BSMIL" title="XHTML+SMIL">XHTML+SMIL</a> | <a href="Extensible_User_Interface_Protocol" title="Extensible User Interface Protocol">XUP</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Richtlinien</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Web_Content_Accessibility_Guidelines" title="Web Content Accessibility Guidelines">Web Content Accessibility Guidelines</a> | Multimodal Interaction Activity | <a href="W3C_Markup_Validation_Service" title="W3C Markup Validation Service">Markup Validation Service</a>
</p>
</td></tr>
<tr>
<td class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;border: 1px solid transparent;border-top: 1px solid #FFF;border-bottom: 2px solid #FFF;padding: 0 1em;"><b>Initiativen</b>
</td>
<td class="hlist" style="text-align: left;border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: 0 .25em;">
<p><a href="Web_Accessibility_Initiative" title="Web Accessibility Initiative">Web Accessibility Initiative</a>
</p>
</td></tr>
</tbody></table></div></div>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten (Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/1068348321">1068348321</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-06-22" href="https://de.wikipedia.org/wiki/?title=WebSocket&oldid=257268120">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>